Digital processors are increasingly used in cars, trucks, aircraft and other vehicles to control safety-critical functions such as braking and engine control. One or more software variables stored in a processor memory may be considered critical to a system that controls the safety critical function. That is, if a storage location of such a variable were to become corrupted, and if the corruption were to go undetected, the processor could cause the system to take an incorrect action. If the processor is executing a safety-critical operation, protective software may be implemented to detect faults and to prompt remedial action within a critical time limit.
Current fault detection and corrective techniques are typically aimed at protecting software variables based on one or more types of failure mode from which corruption could result. Various types of system faults could occur, including but not limited to random access memory (RAM) hardware failures, calculation errors caused by writes to a wrong storage location, arithmetic logic unit (ALU) failures, RAM data storage faults, and read-only memory (ROM) faults. Tests currently in use for detecting corruption of a critical software variable, however, may be vulnerable to corruption that occurs after the test but before the variable is used.